<template>
  <div class="lcdp_axe_main" v-show="alreadyLoad">
    <div class="lcdp_axe jxd_ins_elBaseWebPage jxd_additional JxkhtjxtjllJxgl hussar_0">
      <!-- 区域 -->
      <div :disabled="container_2Disabled" ref="container_2Ref" v-show="!container_2Hidden" class="container_2 jxd_ins_elContainer lay-container default">
        <!-- 图片 -->
        <el-image :src="require('@/assets/img/navbar/big.png')" :disabled="image_3Disabled" ref="image_3Ref" v-show="!image_3Hidden" class="image_3 jxd_ins_elImage jxd-image-item default"></el-image>
        <!-- 区域 -->
        <div :disabled="container_23Disabled" ref="container_23Ref" v-show="!container_23Hidden" class="container_23 jxd_ins_elContainer lay-container default">
          <!-- 标签 -->
          <span :class="{ isFlex: !label_24Hidden }" id="JxkhtjxtjllJxgllabel_24" :disabled="label_24Disabled" @mouseover="selectStyle('label_24', 'JxkhtjxtjllJxgllabel_24')" v-show="!label_24Hidden" class="label_24 jxd_ins_format jxd-format-element default">
            <el-tooltip :disabled="label_24tooltip" :open-delay="500" class="item" effect="dark" :visible-arrow="false" popper-class="el-prompt el-prompt-position el-format-tooltip">
              <div slot="content" class="el-title">
                {{ label_24Data | label_24format(label_24that) }}
              </div>
              <span class="isShear">
                <span>{{ label_24Data | label_24format(label_24that) }}</span>
              </span>
            </el-tooltip>
          </span>
          <!-- 标签 -->
          <span :class="{ isFlex: !label_25Hidden }" id="JxkhtjxtjllJxgllabel_25" :disabled="label_25Disabled" @mouseover="selectStyle('label_25', 'JxkhtjxtjllJxgllabel_25')" v-show="!label_25Hidden" class="label_25 jxd_ins_format jxd-format-element default">
            <el-tooltip :disabled="label_25tooltip" :open-delay="500" class="item" effect="dark" :visible-arrow="false" popper-class="el-prompt el-prompt-position el-format-tooltip">
              <div slot="content" class="el-title">
                {{ label_25Data | label_25format(label_25that) }}
              </div>
              <span class="isShear">
                <span>{{ label_25Data | label_25format(label_25that) }}</span>
              </span>
            </el-tooltip>
          </span>
          <!-- 标签 -->
          <span :class="{ isFlex: !label_26Hidden }" id="JxkhtjxtjllJxgllabel_26" :disabled="label_26Disabled" @mouseover="selectStyle('label_26', 'JxkhtjxtjllJxgllabel_26')" v-show="!label_26Hidden" class="label_26 jxd_ins_format jxd-format-element default">
            <el-tooltip :disabled="label_26tooltip" :open-delay="500" class="item" effect="dark" :visible-arrow="false" popper-class="el-prompt el-prompt-position el-format-tooltip">
              <div slot="content" class="el-title">
                {{ label_26Data | label_26format(label_26that) }}
              </div>
              <span class="isShear">
                <span>{{ label_26Data | label_26format(label_26that) }}</span>
              </span>
            </el-tooltip>
          </span>
          <!-- 标签 -->
          <span :class="{ isFlex: !label_27Hidden }" id="JxkhtjxtjllJxgllabel_27" :disabled="label_27Disabled" @mouseover="selectStyle('label_27', 'JxkhtjxtjllJxgllabel_27')" v-show="!label_27Hidden" class="label_27 jxd_ins_format jxd-format-element default">
            <el-tooltip :disabled="label_27tooltip" :open-delay="500" class="item" effect="dark" :visible-arrow="false" popper-class="el-prompt el-prompt-position el-format-tooltip">
              <div slot="content" class="el-title">
                {{ label_27Data | label_27format(label_27that) }}
              </div>
              <span class="isShear">
                <span>{{ label_27Data | label_27format(label_27that) }}</span>
              </span>
            </el-tooltip>
          </span>
          <!-- 标签 -->
          <span :class="{ isFlex: !label_28Hidden }" id="JxkhtjxtjllJxgllabel_28" :disabled="label_28Disabled" @mouseover="selectStyle('label_28', 'JxkhtjxtjllJxgllabel_28')" v-show="!label_28Hidden" class="label_28 jxd_ins_format jxd-format-element default">
            <el-tooltip :disabled="label_28tooltip" :open-delay="500" class="item" effect="dark" :visible-arrow="false" popper-class="el-prompt el-prompt-position el-format-tooltip">
              <div slot="content" class="el-title">
                {{ label_28Data | label_28format(label_28that) }}
              </div>
              <span class="isShear">
                <span>{{ label_28Data | label_28format(label_28that) }}</span>
              </span>
            </el-tooltip>
          </span>
          <!-- 标签 -->
          <span :class="{ isFlex: !label_29Hidden }" id="JxkhtjxtjllJxgllabel_29" :disabled="label_29Disabled" @mouseover="selectStyle('label_29', 'JxkhtjxtjllJxgllabel_29')" v-show="!label_29Hidden" class="label_29 jxd_ins_format jxd-format-element default">
            <el-tooltip :disabled="label_29tooltip" :open-delay="500" class="item" effect="dark" :visible-arrow="false" popper-class="el-prompt el-prompt-position el-format-tooltip">
              <div slot="content" class="el-title">
                {{ label_29Data | label_29format(label_29that) }}
              </div>
              <span class="isShear">
                <span>{{ label_29Data | label_29format(label_29that) }}</span>
              </span>
            </el-tooltip>
          </span>
        </div>
        <!-- 区域 -->
        <div :disabled="container_30Disabled" ref="container_30Ref" v-show="!container_30Hidden" class="container_30 jxd_ins_elContainer lay-container default">
          <!-- 标签 -->
          <span :class="{ isFlex: !label_31Hidden }" id="JxkhtjxtjllJxgllabel_31" :disabled="label_31Disabled" @mouseover="selectStyle('label_31', 'JxkhtjxtjllJxgllabel_31')" v-show="!label_31Hidden" class="label_31 jxd_ins_format jxd-format-element default">
            <el-tooltip :disabled="label_31tooltip" :open-delay="500" class="item" effect="dark" :visible-arrow="false" popper-class="el-prompt el-prompt-position el-format-tooltip">
              <div slot="content" class="el-title">
                {{ label_31Data | label_31format(label_31that) }}
              </div>
              <span class="isShear">
                <span>{{ label_31Data | label_31format(label_31that) }}</span>
              </span>
            </el-tooltip>
          </span>
          <!-- 标签 -->
          <span :class="{ isFlex: !label_32Hidden }" id="JxkhtjxtjllJxgllabel_32" :disabled="label_32Disabled" @mouseover="selectStyle('label_32', 'JxkhtjxtjllJxgllabel_32')" v-show="!label_32Hidden" class="label_32 jxd_ins_format jxd-format-element default">
            <el-tooltip :disabled="label_32tooltip" :open-delay="500" class="item" effect="dark" :visible-arrow="false" popper-class="el-prompt el-prompt-position el-format-tooltip">
              <div slot="content" class="el-title">
                {{ label_32Data | label_32format(label_32that) }}
              </div>
              <span class="isShear">
                <span>{{ label_32Data | label_32format(label_32that) }}</span>
              </span>
            </el-tooltip>
          </span>
        </div>
      </div>
      <!-- 按钮 -->
      <el-button tabindex="" :disabled="button_4Disabled" ref="button_4Ref" v-show="!button_4Hidden" class="button_4 jxd_ins_elButton lay-btn button_additional default">
        <i class=""></i>
        <span>保存</span>
      </el-button>
      <!-- 区域 -->
      <div :disabled="container_6Disabled" ref="container_6Ref" v-show="!container_6Hidden" class="container_6 jxd_ins_elContainer lay-container default">
        <!-- 区域 -->
        <div :disabled="container_7Disabled" ref="container_7Ref" v-show="!container_7Hidden" class="container_7 jxd_ins_elContainer lay-container default">
          <!-- 标签 -->
          <span :class="{ isFlex: !label_8Hidden }" id="JxkhtjxtjllJxgllabel_8" :disabled="label_8Disabled" @mouseover="selectStyle('label_8', 'JxkhtjxtjllJxgllabel_8')" v-show="!label_8Hidden" class="label_8 jxd_ins_format jxd-format-element default">
            <el-tooltip :disabled="label_8tooltip" :open-delay="500" class="item" effect="dark" :visible-arrow="false" popper-class="el-prompt el-prompt-position el-format-tooltip">
              <div slot="content" class="el-title">
                {{ label_8Data | label_8format(label_8that) }}
              </div>
              <span class="isShear">
                <span>{{ label_8Data | label_8format(label_8that) }}</span>
              </span>
            </el-tooltip>
          </span>
          <!-- 按钮 -->
          <el-button tabindex="" :disabled="button_9Disabled" ref="button_9Ref" v-show="!button_9Hidden" class="button_9 jxd_ins_elButton lay-btn button_additional default" @click="button_9Click">
            <i class=""></i>
            <span>批量导入</span>
          </el-button>
          <!-- 按钮 -->
          <el-button tabindex="" :disabled="button_11Disabled" ref="button_11Ref" v-show="!button_11Hidden" class="button_11 jxd_ins_elButton lay-btn button_additional default">
            <i class=""></i>
            <span>新增</span>
          </el-button>
          <!-- 按钮 -->
          <el-button tabindex="" :disabled="button_14Disabled" ref="button_14Ref" v-show="!button_14Hidden" class="button_14 jxd_ins_elButton lay-btn button_additional default" @click="button_14Click">
            <i class=""></i>
            <span>下载模板</span>
          </el-button>
        </div>
        <!-- 数据表格 -->
        <div v-show="!table_42Hidden" class="table_42 jxd_ins_hTableV1 lay-table default">
          <h-table-v1 :key="table_42Refresh" theme-name="default" :props="table_42PropsData" :inner-styles="table_42InnerStyles" v-loading="table_42TableLoading" :isPagination="true" @selection-change="table_42SelectRow" ref="table_42TableRef" :cell-style="table_42CellStyle" @sort-change="table_42SortChange" :disabled="table_42Disabled" :data="table_42Data" :listQuery="table_42ListQuery">
            <el-table-column prop="xqTitle" label="需求名称" align="noConfig" header-align="noConfig" :show-overflow-tooltip="true" :resizable="true">
              <template slot-scope="scope">
                {{ scope.row.xqTitle }}
              </template>
            </el-table-column>
            <el-table-column prop="chargeName" label="负责人" align="noConfig" header-align="noConfig" :show-overflow-tooltip="true" :resizable="true">
              <template slot-scope="scope">
                {{ scope.row.chargeName }}
              </template>
            </el-table-column>
            <el-table-column prop="totalTime" label="人员总工时" align="noConfig" header-align="noConfig" :show-overflow-tooltip="true" :resizable="true">
              <template slot-scope="scope">
                {{ scope.row.totalTime }}
              </template>
            </el-table-column>
            <el-table-column prop="rate" label="工作日占比" align="noConfig" header-align="noConfig" :show-overflow-tooltip="true" :resizable="true">
              <template slot-scope="scope">
                {{ scope.row.rate }}
              </template>
            </el-table-column>
          </h-table-v1>
          <div class="page">
            <el-pagination background @size-change="table_42HandleSizeChange" @current-change="table_42HandleCurrentChange" :page-size="table_42ListQuery.size" :key="table_42UpdateKey" :layout="table_42Layout" :total="table_42TableTotal" :current-page.sync="table_42ListQuery.current"></el-pagination>
          </div>
        </div>
      </div>
      <!-- 按钮 -->
      <el-button tabindex="" :disabled="button_34Disabled" ref="button_34Ref" v-show="!button_34Hidden" class="button_34 jxd_ins_elButton lay-btn button_additional default">
        <i class=""></i>
        <span>返回</span>
      </el-button>
      <!-- 按钮 -->
      <el-button tabindex="" :disabled="button_43Disabled" ref="button_43Ref" v-show="!button_43Hidden" class="button_43 jxd_ins_elButton lay-btn button_additional default" @click="button_43Click">
        <i class=""></i>
        <span>删除</span>
      </el-button>
    </div>
  </div>
</template>
<script>
import * as HussarRouter from '@/utils/HussarRouter';
import * as _ from 'lodash';
import * as flowAuth from '@/api/bpm/flowAuth';
import * as xqb from '#/api/jxkhtjxtjll/xqb';
import { caching } from 'hussar-base';
import { dateFormatPublic } from '@/pages/index/utils/lowcode/dateFormatUtil';
import { excelDownloadForArea } from '@/pages/index/utils/lowcode/tableRelevantUtil';
import { formatSelectStyle } from '@/pages/index/utils/lowcode/formatUtil';
import { getQueryConditionsResult } from '@/pages/index/utils/lowcode/queryConditionUtils';
import { saveAs } from 'file-saver';
/* @begin definitions # 页面局部定义 */
/* @end definitions */
export default {
  name: 'JxkhtjxtjllJxgl',
  components: {
    /* @begin components # 自定义组件 */
    /* @end components */
  },
  props: {
    /* @begin props # 自定义 */
    /* @end props */
  },
  data() {
    return {
      alreadyLoad: false, // 页面的alreadyLoad属性
      button_4Disabled: false, // 按钮的禁用属性
      button_4Hidden: false, // 按钮的隐藏属性
      button_9Disabled: false, // 按钮的禁用属性
      button_9Hidden: false, // 按钮的隐藏属性
      button_11Disabled: false, // 按钮的禁用属性
      button_11Hidden: false, // 按钮的隐藏属性
      button_14Disabled: false, // 按钮的禁用属性
      button_14Hidden: false, // 按钮的隐藏属性
      button_34Disabled: false, // 按钮的禁用属性
      button_34Hidden: false, // 按钮的隐藏属性
      button_43Disabled: false, // 按钮的禁用属性
      button_43Hidden: false, // 按钮的隐藏属性
      container_2Disabled: false, // 区域的禁用属性
      container_2Hidden: false, // 区域的隐藏属性
      container_6Disabled: false, // 区域的禁用属性
      container_6Hidden: false, // 区域的隐藏属性
      container_7Disabled: false, // 区域的禁用属性
      container_7Hidden: false, // 区域的隐藏属性
      container_23Disabled: false, // 区域的禁用属性
      container_23Hidden: false, // 区域的隐藏属性
      container_30Disabled: false, // 区域的禁用属性
      container_30Hidden: false, // 区域的隐藏属性
      form_1FormCheck: {
        xqTitle: true,
        businessId: true,
        chargeName: true,
        totalTime: true,
        rate: true,
        chargeId: true,
      }, // 表单验证属性
      form_1FormData: {
        xqTitle: '',
        businessId: '',
        chargeName: '',
        totalTime: '',
        rate: '',
        chargeId: '',
      }, // 需求表的data变量
      httpApi_el_image: process.env.VUE_APP_HUSSAR_DEFAULT_API,
      baseurl: process.env.VUE_APP_URL_PREFIX,
      image_3Disabled: false, // 图片的禁用属性
      image_3Hidden: false, // 图片的隐藏属性
      isFirstCreate: true, // 页面的isFirstCreate属性
      label_8Data: '需求列表', // 标签的value变量
      label_8Disabled: false, // 标签的禁用属性
      label_8Hidden: false, // 标签的隐藏属性
      label_8that: this,
      label_8tooltip: false,
      label_24Data: '当前小组', // 标签的value变量
      label_24Disabled: false, // 标签的禁用属性
      label_24Hidden: false, // 标签的隐藏属性
      label_24that: this,
      label_24tooltip: false,
      label_25Data: '小组名称1', // 标签的value变量
      label_25Disabled: false, // 标签的禁用属性
      label_25Hidden: false, // 标签的隐藏属性
      label_25that: this,
      label_25tooltip: false,
      label_26Data: '小组组长', // 标签的value变量
      label_26Disabled: false, // 标签的禁用属性
      label_26Hidden: false, // 标签的隐藏属性
      label_26that: this,
      label_26tooltip: false,
      label_27Data: '组长一号', // 标签的value变量
      label_27Disabled: false, // 标签的禁用属性
      label_27Hidden: false, // 标签的隐藏属性
      label_27that: this,
      label_27tooltip: false,
      label_28Data: '小组人数', // 标签的value变量
      label_28Disabled: false, // 标签的禁用属性
      label_28Hidden: false, // 标签的隐藏属性
      label_28that: this,
      label_28tooltip: false,
      label_29Data: '3人', // 标签的value变量
      label_29Disabled: false, // 标签的禁用属性
      label_29Hidden: false, // 标签的隐藏属性
      label_29that: this,
      label_29tooltip: false,
      label_31Data: '当前用户', // 标签的value变量
      label_31Disabled: false, // 标签的禁用属性
      label_31Hidden: false, // 标签的隐藏属性
      label_31that: this,
      label_31tooltip: false,
      label_32Data: '', // 标签的value变量
      label_32Disabled: false, // 标签的禁用属性
      label_32Hidden: false, // 标签的隐藏属性
      label_32that: this,
      label_32tooltip: false,
      table_42Data: [], // 数据表格的value变量
      table_42Disabled: false, // 数据表格的禁用属性
      table_42Hidden: false,
      table_42Layout: 'total,prev,pager,next',
      table_42CurrentPage: 1,
      table_42UpdateKey: 0,
      table_42TableLoading: false,
      table_42Refresh: 0,
      table_42ListQuery: {
        current: 1,
        size: 10,
      }, // 数据表格的pagination变量
      table_42PropsData: {
        needOperations: [
          {
            borderColor: 'transparent',
            color: '#2794F8',
            bg: 'transparent',
            auth: '',
            eventName: 'needOperation1',
            label: '修改',
          },
          {
            borderColor: 'transparent',
            color: '#2794F8',
            bg: 'transparent',
            auth: '',
            eventName: 'needOperation2',
            label: '删除',
          },
          {
            borderColor: 'transparent',
            color: '#2794F8',
            bg: 'transparent',
            auth: '',
            eventName: 'needOperation3',
            label: '流程图',
          },
          {
            borderColor: 'transparent',
            color: '#2794F8',
            bg: 'transparent',
            auth: '',
            eventName: 'needOperation4',
            label: '流程修改',
          },
          {
            borderColor: 'transparent',
            color: '#2794F8',
            bg: 'transparent',
            auth: '',
            eventName: 'needOperation5',
            label: '流程删除',
          },
        ],
        needOperationWidth: 390,
        showSelection: true,
        showToolbar: false,
        showCustomList: false,
      },
      table_42InnerStyles: {},
      table_42ReturnData: [], // 表格动作返回值
      table_42TableDataChecked: [], // 数据表格的data变量
      table_42TableTotal: 0, // 数据表格的total变量
      /* @begin data # 自定义数据属性 */
      /* @end data */
    };
  },
  computed: {
    /* @begin computed # 自定义计算属性 */
    /* @end computed */
  },
  watch: {
    /* @begin watch # 自定义侦听器 */
    /* @end watch */
  },
  methods: {
    /**
     * 按钮的点击事件
     */
    button_9Click() {
      const self = this;
      // 数据表格导入
      const importFile = document.createElement('input');
      importFile.style.display = 'none';
      importFile.type = 'file';
      importFile.value = '';
      importFile.accept = '.csv,.xlc,.xlm,.xls,.xlt, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel';
      importFile.onchange = function (event) {
        self.button_9importF(event, () => {
          // 此处生成了空方法体
        });
      };
      importFile.click();
    },
    button_9importF(event, callback) {
      const self = this;
      const file = event.currentTarget.files[0];
      let success = false;
      const startIndex = file.name.lastIndexOf('.');
      if (startIndex < 0) {
        HussarRouter.showMsg(self, '文件格式错误，请重新选择！', 'error');
        return;
      }
      const types = file.name.slice(startIndex + 1);
      const fileType = ['xlsx', 'xlc', 'xlm', 'xls', 'xlt'].some((item) => item === types);
      if (!fileType) {
        HussarRouter.showMsg(self, '文件格式错误，请重新选择！', 'error');
        return;
      }
      const Excel = require('exceljs');
      const fileReader = new FileReader();
      const dicts = [];
      const relates = [];
      fileReader.onload = function (ev) {
        const data = ev.target.result;
        const workbook = new Excel.Workbook();
        workbook.xlsx.load(data).then(function () {
          const values = ['需求名称', '负责人', '人员总工时', '工作日占比', '小组名称', '季度'];
          const prop = ['xqTitle', 'chargeName', 'totalTime', 'rate', 'groupName', 'jd'];
          function cellValueToDict(keys, row) {
            const data = {};
            row.eachCell(function (cell, colNumber) {
              let value = cell.value;
              if (cell.type === Excel.ValueType.Date) {
                value = new Date(value.valueOf() - 8 * 60 * 60 * 1000);
              }
              if (dicts.length !== 0) {
                const findIndex = dicts.findIndex(function (dictItem) {
                  return dictItem.field === prop[colNumber - 1];
                });
                if (findIndex !== -1) {
                  if (value.toString().includes(',')) {
                    const valueArr = [];
                    value.split(',').forEach(function (val) {
                      const dictItem = dicts[findIndex].dict.find(function (dictItem) {
                        return val === dictItem.label && dictItem.field === prop[colNumber - 1];
                      });
                      if (dictItem) {
                        valueArr.push(dictItem.value);
                      } else {
                        valueArr.push(value);
                      }
                    });
                    value = valueArr.join(',');
                  } else {
                    const dictItem = dicts[findIndex].dict.find(function (dictItem) {
                      return value === dictItem.label && dictItem.field === prop[colNumber - 1];
                    });
                    if (dictItem) {
                      value = dictItem.value;
                    }
                  }
                }
              }
              data[prop[colNumber - 1]] = value;
            });
            return data;
          }
          const dataArray = [];
          let keys = [];
          const worksheet = workbook.worksheets[0]; // 获取第一个worksheet
          worksheet.eachRow(function (row, rowNumber) {
            if (rowNumber === 1) {
              keys = row.values;
            } else if (rowNumber > 1) {
              const rowDict = cellValueToDict(keys, row);
              dataArray.push(rowDict);
            }
          });
          const valuesCopy = values.slice(0);
          const keysCopy = keys
            .filter(function (el) {
              return el;
            })
            .slice(0);
          if (JSON.stringify(keysCopy.sort()) !== JSON.stringify(valuesCopy.sort())) {
            HussarRouter.showMsg(self, '导入模板错误，请重新选择！', 'error');
            return;
          }
          //处理时间格式问题开始
          dataArray.forEach(function (item) {
            for (let val in item) {
              if (item[val] instanceof Date) {
                item[val] = dateFormatPublic('datetime', item[val]);
              }
            }
          });
          //处理时间格式问题结束
          xqb
            .tableSave({
              importList: JSON.stringify(dataArray),
            })
            .then((res) => {
              if (res.success) {
                success = true;
                HussarRouter.showMsg(self, '导入成功', 'success');
                self.table_42TableLoad();
              } else {
                HussarRouter.showMsg(self, '导入失败', 'error');
              }
            })
            .catch(function () {
              HussarRouter.showMsg(self, '数据请求异常', 'error');
            });
        });
      };
      fileReader.readAsBinaryString(file);
    },
    /**
     * 按钮的点击事件
     */
    button_14Click() {
      const self = this;
      // 导入模板下载
      const tableData = ['需求名称', '负责人', '人员总工时', '工作日占比', '小组名称', '季度'];
      const tableField = ['xqTitle', 'chargeName', 'totalTime', 'rate', 'groupName', 'jd'];
      const columns = [];
      for (let i = 0; i < tableData.length; i++) {
        const excelCol = {};
        // excelCol.header = tableData[0][i];
        excelCol.key = tableField[i];
        excelCol.width = 30;
        columns.push(excelCol);
      }
      const Excel = require('exceljs');
      const workbook = new Excel.Workbook();
      const worksheet = workbook.addWorksheet('sheet1');
      const fileName = 'data.xlsx';
      workbook.created = new Date();
      workbook.modified = new Date();
      worksheet.columns = columns;
      const colArray = [];
      const tableHead = [];
      let level = 1;
      let maxLevel = 1;
      tableHead.push({
        title: '需求名称',
        horizontal: 'center',
        colspan: 1,
        rowspan: 1,
        level: level,
      });
      const xqTitleIndex = tableField.indexOf('xqTitle');
      const xqTitleLetter = excelDownloadForArea(xqTitleIndex);
      colArray.push({
        letter: xqTitleLetter,
        horizontal: 'center',
        dataType: 'string',
      });
      tableHead.push({
        title: '负责人',
        horizontal: 'center',
        colspan: 1,
        rowspan: 1,
        level: level,
      });
      const chargeNameIndex = tableField.indexOf('chargeName');
      const chargeNameLetter = excelDownloadForArea(chargeNameIndex);
      colArray.push({
        letter: chargeNameLetter,
        horizontal: 'center',
        dataType: 'string',
      });
      tableHead.push({
        title: '人员总工时',
        horizontal: 'center',
        colspan: 1,
        rowspan: 1,
        level: level,
      });
      const totalTimeIndex = tableField.indexOf('totalTime');
      const totalTimeLetter = excelDownloadForArea(totalTimeIndex);
      colArray.push({
        letter: totalTimeLetter,
        horizontal: 'center',
        dataType: 'number',
      });
      tableHead.push({
        title: '工作日占比',
        horizontal: 'center',
        colspan: 1,
        rowspan: 1,
        level: level,
      });
      const rateIndex = tableField.indexOf('rate');
      const rateLetter = excelDownloadForArea(rateIndex);
      colArray.push({
        letter: rateLetter,
        horizontal: 'center',
        dataType: 'number',
      });
      --level;
      for (let i = 0; i < tableHead.length; i++) {
        if (tableHead[i].level > maxLevel) {
          maxLevel = tableHead[i].level;
        }
      }
      tableHead.push({
        title: '小组名称',
        horizontal: 'center',
        colspan: 1,
        rowspan: maxLevel,
        level: 1,
      });
      const groupNameIndex = tableField.indexOf('groupName');
      const groupNameLetter = excelDownloadForArea(groupNameIndex);
      colArray.push({
        letter: groupNameLetter,
        horizontal: 'center',
        dataType: 'string',
      });
      tableHead.push({
        title: '季度',
        horizontal: 'center',
        colspan: 1,
        rowspan: maxLevel,
        level: 1,
      });
      const jdIndex = tableField.indexOf('jd');
      const jdLetter = excelDownloadForArea(jdIndex);
      colArray.push({
        letter: jdLetter,
        horizontal: 'center',
        dataType: 'string',
      });
      for (let i = 0; i < tableHead.length; i++) {
        if (tableHead[i].rowspan + tableHead[i].level - 1 > maxLevel) {
          tableHead[i].rowspan = maxLevel - tableHead[i].level + 1;
        }
      }
      const excelCell = [];
      const rows = [];
      for (let i = 0; i < tableField.length; i++) {
        for (let j = 0; j < maxLevel; j++) {
          const cell = { xAxis: i, yAxis: j, isEdit: false };
          excelCell.push(cell);
        }
      }
      for (let i = 0; i < maxLevel; i++) {
        let x = 0;
        const row = [];
        for (let j = 0; j < tableHead.length; j++) {
          const index = excelCell.findIndex(function (value, index, arr) {
            return value.isEdit === false && value.yAxis === i;
          });
          if (index !== -1) {
            x = excelCell.find(function (value, index, arr) {
              return value.isEdit === false && value.yAxis === i;
            }).xAxis;
          }
          if (tableHead[j].level - 1 === i) {
            const startArea = excelDownloadForArea(x) + (1 + i);
            const endArea = excelDownloadForArea(x + tableHead[j].colspan - 1) + (tableHead[j].rowspan + i);
            for (let k = x; k < x + tableHead[j].colspan; k++) {
              for (let m = i; m < tableHead[j].rowspan + i; m++) {
                excelCell.find(function (value, index, arr) {
                  return value.xAxis === k && value.yAxis === m;
                }).isEdit = true;
              }
            }
            while (row.length < x) {
              row.push('');
            }
            row[x] = tableHead[j].title;
            tableHead[j].merge = startArea + ':' + endArea;
          }
        }
        rows.push(row);
      }
      worksheet.insertRows(1, rows);
      for (let j = 0; j < tableHead.length; j++) {
        worksheet.mergeCells(tableHead[j].merge);
        worksheet.getCell(tableHead[j].merge.split(':')[0]).alignment = {
          vertical: 'middle',
          horizontal: tableHead[j].horizontal,
        };
      }
      for (let i = 0; i < colArray.length; i++) {
        for (let j = maxLevel + 1; j < 1000; j++) {
          worksheet.getCell(colArray[i].letter + j).alignment = { horizontal: colArray[i].horizontal };
          if (colArray[i].dataType === 'date') {
            worksheet.getCell(colArray[i].letter + j).dataValidation = {
              type: 'date',
              operator: 'between',
              showErrorMessage: true,
              allowBlank: true,
              formulae: [new Date(1900, 1, 1), new Date(2100, 1, 1)],
              showInputMessage: true,
              promptTitle: '日期',
              prompt: '请输入日期格式数据',
            };
          } else if (colArray[i].dataType === 'number') {
            worksheet.getCell(colArray[i].letter + j).dataValidation = {
              type: 'decimal',
              allowBlank: true,
              showErrorMessage: true,
              showInputMessage: true,
              promptTitle: '数字',
              prompt: '请输入数字格式数据',
            };
          }
        }
      }
      workbook.xlsx.writeBuffer().then(function (buffer) {
        saveAs(
          new Blob([buffer], {
            type: 'application/octet-stream',
          }),
          fileName
        );
      });
    },
    /**
     * 按钮的点击事件
     */
    button_43Click() {
      const self = this;
      // 数据表格删除
      // 拿到选中的数据
      const val = self.table_42TableDataChecked;
      // 如果选中数据存在
      if (val.length > 0) {
        const deleteRowIds = [];
        // 将选中数据遍历
        val.forEach((item) => {
          deleteRowIds.push(item.businessId);
        });
        const tableFlagDelete = {
          ids: deleteRowIds.join(','),
        };
        let success = false;
        self
          .$confirm('确定要删除吗?', '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning',
          })
          .then(() => {
            const loading = self.$loading({
              lock: true,
              text: 'Loading',
              spinner: 'el-icon-loading',
              background: 'rgba(0, 0, 0, 0.7)',
            });
            xqb
              .flagDelete(tableFlagDelete)
              .then((res) => {
                success = res.success;
                if (success) {
                  HussarRouter.showMsg(self, '删除成功', 'success', false);
                  if (self.table_42ListQuery && Math.ceil((self.table_42TableTotal - self.table_42TableDataChecked.length) / self.table_42ListQuery.size) < self.table_42ListQuery.current) {
                    self.table_42ListQuery.current = Math.ceil((self.table_42TableTotal - self.table_42TableDataChecked.length) / self.table_42ListQuery.size);
                  }
                  self.table_42TableLoad();
                } else {
                  HussarRouter.showMsg(self, res.msg || '删除失败', 'error', false);
                }
                loading.close();
              })
              .catch(function () {
                HussarRouter.showMsg(self, '表格数据请求异常', 'error', false);
                loading.close();
              });
          })
          .catch(() => {
            HussarRouter.showMsg(self, '已取消删除', 'info', false);
          });
      } else {
        HussarRouter.showMsg(self, '请至少选择一条数据', 'warning', false);
      }
    },
    /**
     * 表单加载
     */
    form_1FormLoad(callback, formId) {
      const self = this;
      // 路由id
      const routerId = formId || HussarRouter.query(self, 'businessId');
      const data = {
        id: routerId,
      };
      if (self.form_1FormDataOLD !== undefined) {
        self.form_1FormDataOLD = _.cloneDeep(self.form_1FormData);
      }
      if (routerId && routerId !== '') {
        let convert = [];
        xqb
          .formQuery(data)
          .then(async (res) => {
            if ((res.code === 200 || res.code === 10000) && res.data) {
              convert = res.data;
              self.form_1FormData = convert;
              if (self.form_1FormDataOLD !== undefined) {
                self.form_1FormDataOLD = _.cloneDeep(self.form_1FormData);
              }
              if (callback && typeof callback === 'function') {
                callback();
              }
            } else {
              HussarRouter.showMsg(self, '表单数据请求失败', 'error');
            }
          })
          .catch(function () {
            HussarRouter.showMsg(self, '表单数据请求异常', 'error');
          });
      } else {
        if (callback && typeof callback === 'function') {
          callback();
        }
      }
    },
    /**
     * 页面激活事件
     */
    hussar_0Activated() {
      const self = this;
      // 数据表格查询
      self.$nextTick(() => {
        self.table_42CurrentPage = 1;
        if (self.table_42ListQuery) {
          self.table_42ListQuery.current = 1;
        }
      });
      self.$nextTick(() => {
        self.table_42TableLoad(() => {
          (function () {
            // 赋值
            const fromData = caching.session.get(process.env.VUE_APP_USERNAME);
            if (fromData || fromData === 0 || fromData === '') {
              self.label_32Data = fromData;
            }
          })();
        });
      });
    },
    /**
     * 页面加载完成事件
     */
    hussar_0Onload() {
      const self = this;
      // 数据表格查询
      self.$nextTick(() => {
        self.table_42CurrentPage = 1;
        if (self.table_42ListQuery) {
          self.table_42ListQuery.current = 1;
        }
      });
      self.$nextTick(() => {
        self.table_42TableLoad(() => {
          (function () {
            // 赋值
            const fromData = caching.session.get(process.env.VUE_APP_USERNAME);
            if (fromData || fromData === 0 || fromData === '') {
              self.label_32Data = fromData;
            }
          })();
        });
      });
    },
    /**
     * 页面状态方法
     */
    hussar_0PageAllStateMe() {
      const self = this;
      if (self.hussar_0PageCommonStateMe) {
        self.hussar_0PageCommonStateMe();
      }
      if (self.hussar_0BpmStateHandler) {
        self.hussar_0BpmStateHandler();
      }
    },
    /**
     * 工作流表单权限方法
     */
    hussar_0PageRenderAllState(callBack) {
      const self = this;
      const failButContinue = true;
      flowAuth
        .getOnlineConfig()
        .then((res) => {
          if (res && res.msg === 'true') {
            // 权限查询条件
            if (self.$options.name && HussarRouter.query(self, 'processDefinitionKey')) {
              const condition = {
                formName: self.$options.name,
                taskId: HussarRouter.query(self, 'taskId'),
                processKey: HussarRouter.query(self, 'processDefinitionKey'),
                formType: HussarRouter.query(self, 'doneListIdentification'),
                taskDefinitionKey: HussarRouter.query(self, 'taskDefinitionKey'),
              };
              if (HussarRouter.query(self, 'doneListIdentification') === 3) {
                // 此处生成了空方法体
              }
              // 获取该工作流相应的表单权限配置
              if (flowAuth.getAllAuthConfigs) {
                flowAuth.getAllAuthConfigs(condition).then((res) => {
                  if (res && res.data && res.data.length > 0) {
                    // 循环权限配置，查到符合当前流程节点的权限
                    res.data.forEach((auth) => {
                      if (auth.taskDefinitionKey === HussarRouter.query(self, 'taskDefinitionKey')) {
                        // 获取禁用组件
                        if (auth.insDisabled) {
                          const insDisabled = JSON.parse(auth.insDisabled);
                          if (insDisabled && insDisabled.length > 0) {
                            insDisabled.forEach((ins) => {
                              const curIns = `${ins}Disabled`;
                              self[curIns] = true;
                            });
                          }
                        }
                        // 获取隐藏组件
                        if (auth.insHidden) {
                          const insHidden = JSON.parse(auth.insHidden);
                          if (insHidden && insHidden.length > 0) {
                            insHidden.forEach((ins) => {
                              const curIns = `${ins}Hidden`;
                              self[curIns] = true;
                            });
                          }
                        }
                        // 获取无需校验组件
                        if (auth.insNotCheck) {
                          const insNotCheck = JSON.parse(auth.insNotCheck);
                          if (insNotCheck && insNotCheck.length > 0) {
                            const formCheckParam = JSON.parse(auth.formCheckParam);
                            insNotCheck.forEach((ins) => {
                              if (formCheckParam[ins] && formCheckParam[ins].formKey) {
                                const formCheckData = `${formCheckParam[ins].formKey}FormCheck`;
                                if (formCheckParam[ins].field && self[formCheckData]) {
                                  self[formCheckData][formCheckParam[ins].field] = false;
                                }
                              }
                            });
                          }
                        }
                        // 获取隐藏插槽
                        if (auth.slotHidden) {
                          const colSlotHidden = JSON.parse(auth.slotHidden);
                          if (colSlotHidden && Object.keys(colSlotHidden).length > 0) {
                            const slotHiddenParam = `${Object.keys(colSlotHidden)}SlotHidden`;
                            self[slotHiddenParam] = Object.values(colSlotHidden);
                          }
                        }
                      }
                    });
                  }
                  self.alreadyLoad = true;
                });
              }
            } else {
              // 当前页面不是工作流表单
              self.alreadyLoad = true;
            }
          } else {
            self.alreadyLoad = true;
            if (callBack && typeof callBack === 'function') {
              callBack();
            }
          }
        })
        .catch(() => {
          self.$message.error('数据请求异常');
        });
    },
    selectStyle(key, insId) {
      const self = this;
      formatSelectStyle(key, self, insId);
    },
    /**
     * 数据表格的表格单元格样式方法
     */
    table_42CellStyle(row) {
      const self = this;
      if (row.column.property === 'xqTitle') {
        return 'background: null;border-color: null;color: null;';
      }
      if (row.column.property === 'chargeName') {
        return 'background: null;border-color: null;color: null;';
      }
      if (row.column.property === 'totalTime') {
        return 'background: null;border-color: null;color: null;';
      }
      if (row.column.property === 'rate') {
        return 'background: null;border-color: null;color: null;';
      }
    },
    table_42ExcelDownloadForArea(colIndex) {
      const self = this;
      const ordA = 'A'.charCodeAt(0);
      const ordZ = 'Z'.charCodeAt(0);
      const len = ordZ - ordA + 1;
      let str = '';
      while (colIndex >= 0) {
        str = String.fromCharCode((colIndex % len) + ordA) + str;
        colIndex = Math.floor(colIndex / len) - 1;
      }
      return str;
    },
    table_42ExcelExportForArea(colIndex) {
      const self = this;
      const ordA = 'A'.charCodeAt(0);
      const ordZ = 'Z'.charCodeAt(0);
      const len = ordZ - ordA + 1;
      let str = '';
      while (colIndex >= 0) {
        str = String.fromCharCode((colIndex % len) + ordA) + str;
        colIndex = Math.floor(colIndex / len) - 1;
      }
      return str;
    },
    /**
     * 数据表格的获取筛选参数方法
     */
    table_42GetQueryConditions(params) {
      const self = this;
      const queryConditionsFields = [];
      return getQueryConditionsResult({
        queryConditionsFields,
        params,
        filterConfig: self.table_42PropsData.filterConfig,
      });
    },
    /**
     * 数据表格的处理当前更改方法
     */
    table_42HandleCurrentChange(currentPage) {
      const self = this;
      self.table_42ListQuery.current = currentPage;
      const { orders } = self.table_42ListQuery;
      if (orders && orders.length > 0) {
        self.table_42TableLoadByOrderDy();
      } else {
        self.table_42TableLoad();
      }
    },
    /**
     * 数据表格的处理大小更改方法
     */
    table_42HandleSizeChange(pageSize) {
      const self = this;
      self.table_42ListQuery.size = pageSize;
      const { orders } = self.table_42ListQuery;
      if (orders && orders.length > 0) {
        self.table_42TableLoadByOrderDy();
      } else {
        self.table_42TableLoad();
      }
    },
    /**
     * 数据表格的选择行数据方法
     */
    table_42SelectRow(data) {
      const self = this;
      self.table_42TableDataChecked = [];
      data.forEach((item) => {
        self.table_42TableDataChecked.push(item);
      });
    },
    /**
     * 数据表格的全局排序方法
     */
    table_42SortChange(val) {
      const self = this;
      self.table_42ListQuery.orders = [];
      const isNull = val.order === null;
      if (!isNull) {
        const orders = [];
        const isAsc = val.order === 'ascending';
        let order = {};
        // order.column = self.table_42ToLine(val.prop);
        order.column = val.prop;
        order.asc = isAsc;
        orders.push(order);
        this.table_42ListQuery.orders = orders;
      }
      let columns = self.$refs.table_42TableRef.$refs.hTable.columns;
      let { order } = val;
      columns.forEach((column) => {
        column.order = null;
        if (column.property === val.prop) {
          column.order = order;
        }
      });
      self.table_42TableLoadByOrderDy();
    },
    /**
     * 数据表格的表格初始化方法
     */
    table_42TableInit() {
      const self = this;
      self.table_42TableLoad();
    },
    /**
     * 数据表格的表格加载方法
     */
    table_42TableLoad(callback) {
      const self = this;
      self.table_42TableLoading = true;
      let xqbObj = {
        ...self.table_42ListQuery,
      };
      self.table_42UpdateKey++;
      const taskId = HussarRouter.query(self, 'taskId');
      xqbObj.taskId = taskId;
      let importMethod = 'hussarQueryPage';
      if (xqbObj.orders && xqbObj.orders.length > 0) {
        importMethod = 'hussarQueryPage_order_custom';
      }
      xqb[importMethod](xqbObj)
        .then(async (res) => {
          const data = res.data;
          if ((res.code === 200 || res.code === 10000) && data) {
            let convert = [];
            data.data.forEach((item) => {
              const flowRouteParamCopy = {};
              flowRouteParamCopy.businessId = item['businessId'] ? item['businessId'] : '';
              flowRouteParamCopy.taskId = item.taskId ? item.taskId : '';
              flowRouteParamCopy.definitionKey = item.processDefinitionKey ? item.processDefinitionKey : '';
              flowRouteParamCopy.taskDefinitionKey = item.taskDefinitionKey ? item.taskDefinitionKey : '';
              convert.push({
                flowRouteParam: flowRouteParamCopy,
                ...item,
              });
            });
            self.table_42TableTotal = data.count || 0;
            self.table_42ReturnData = data.data;
            self.table_42Data = convert;
            self.table_42TableLoading = false;
            if (callback && typeof callback === 'function') {
              callback();
            }
          } else {
            HussarRouter.showMsg(self, '表格数据请求失败', 'error');
            self.table_42TableLoading = false;
          }
        })
        .catch(function () {
          HussarRouter.showMsg(self, '表格数据请求异常', 'error');
          self.table_42TableLoading = false;
        });
    },
    /**
     * 数据表格的表格排序加载方法
     */
    table_42TableLoadByOrderDy(callback) {
      const self = this;
      self.table_42TableLoading = true;
      let xqbObj = {
        ...self.table_42ListQuery,
      };
      self.table_42UpdateKey++;
      const taskId = HussarRouter.query(self, 'taskId');
      xqbObj.taskId = taskId;
      let importMethod = 'hussarQueryPage_order_custom';
      if (xqbObj.orders && xqbObj.orders.length > 0) {
        importMethod = 'hussarQueryPage_order_custom';
      }
      xqb[importMethod](xqbObj)
        .then(async (res) => {
          const data = res.data;
          if ((res.code === 200 || res.code === 10000) && data) {
            let convert = [];
            data.data.forEach((item) => {
              const flowRouteParamCopy = {};
              flowRouteParamCopy.businessId = item['businessId'] ? item['businessId'] : '';
              flowRouteParamCopy.taskId = item.taskId ? item.taskId : '';
              flowRouteParamCopy.definitionKey = item.processDefinitionKey ? item.processDefinitionKey : '';
              flowRouteParamCopy.taskDefinitionKey = item.taskDefinitionKey ? item.taskDefinitionKey : '';
              convert.push({
                flowRouteParam: flowRouteParamCopy,
                ...item,
              });
            });
            self.table_42TableTotal = data.count || 0;
            self.table_42ReturnData = data.data;
            self.table_42Data = convert;
            self.table_42TableLoading = false;
            if (callback && typeof callback === 'function') {
              callback();
            }
          } else {
            HussarRouter.showMsg(self, '表格数据请求失败', 'error');
            self.table_42TableLoading = false;
          }
        })
        .catch(function () {
          HussarRouter.showMsg(self, '表格数据请求异常', 'error');
          self.table_42TableLoading = false;
        });
    },
    /* @begin methods # 自定义方法 */
    /* @end methods */
  },
  created() {
    const self = this;
    // @begin created:before # 自定义创建钩子头部
    // @end created:before
    self.hussar_0PageRenderAllState();
    // @begin created:after # 自定义创建钩子尾部
    // @end created:after
  },
  mounted() {
    const self = this;
    // @begin mounted:before # 自定义挂载钩子头部
    // @end mounted:before
    self.hussar_0Onload();
    if (self.$compilationMetadata.strategy) {
      window.curPageSelfFresh = function () {
        if (self.hussar_0Activated) {
          self.hussar_0Activated && self.hussar_0Activated();
        }
      };
    }
    // @begin mounted:after # 自定义挂载钩子尾部
    // @end mounted:after
  },
  filters: {
    /**
     * 标签的过滤器
     */
    label_8format(value, that) {
      if (value === undefined || value === '') {
        return '需求列表';
      }
      return value;
    },
    /**
     * 标签的过滤器
     */
    label_24format(value, that) {
      if (value === undefined || value === '') {
        return '当前小组';
      }
      return value;
    },
    /**
     * 标签的过滤器
     */
    label_25format(value, that) {
      if (value === undefined || value === '') {
        return '小组名称1';
      }
      return value;
    },
    /**
     * 标签的过滤器
     */
    label_26format(value, that) {
      if (value === undefined || value === '') {
        return '小组组长';
      }
      return value;
    },
    /**
     * 标签的过滤器
     */
    label_27format(value, that) {
      if (value === undefined || value === '') {
        return '组长一号';
      }
      return value;
    },
    /**
     * 标签的过滤器
     */
    label_28format(value, that) {
      if (value === undefined || value === '') {
        return '小组人数';
      }
      return value;
    },
    /**
     * 标签的过滤器
     */
    label_29format(value, that) {
      if (value === undefined || value === '') {
        return '3人';
      }
      return value;
    },
    /**
     * 标签的过滤器
     */
    label_31format(value, that) {
      if (value === undefined || value === '') {
        return '当前用户';
      }
      return value;
    },
    /**
     * 标签的过滤器
     */
    label_32format(value, that) {
      if (value === undefined || value === '') {
        return '';
      }
      return value;
    },
  },
  destroyed() {
    const self = this;
    // @begin destroyed:before # 自定义销毁钩子头部
    // @end destroyed:before
    // @begin destroyed:after # 自定义销毁钩子尾部
    // @end destroyed:after
  },
  activated() {
    const self = this;
    // @begin activated:before # 自定义组件激活钩子头部
    // @end activated:before
    if (!self.isFirstCreate && HussarRouter.query(self, 'refresh')) {
      self.hussar_0Activated();
    }
    if (!self.isFirstCreate && HussarRouter.query(self, 'systemParams') && JSON.parse(HussarRouter.query(self, 'systemParams')).refresh === 1) {
      self.hussar_0Activated();
    }
    self.isFirstCreate = false;
    // @begin activated:after # 自定义组件激活钩子尾部
    // @end activated:after
  },
  beforeRouteUpdate(to, from, next) {
    const self = this;
    next();
    if (to.query && to.query.systemParams && JSON.parse(to.query.systemParams).refresh === 1) {
      if (self.hussar_0Activated) {
        self.hussar_0Activated && self.hussar_0Activated();
      }
    }
  },
  deactivated() {
    const self = this;
    // @begin deactivated:before # 自定义组件失活钩子头部
    // @end deactivated:before
    self.hussar_0firstCreated = false;
    // @begin deactivated:after # 自定义组件失活钩子尾部
    // @end deactivated:after
  },
  /* @begin options # 自定义页面组件创建选项 */
  /* @end options */
};
</script>
<!-- @begin style:before # 自定义 style 代码块（较低优先级） -->
<!-- @end style:before -->
<style scoped>
/*公共，用于固定*/
.lcdp_axe_main {
  height: 100%;
  overflow: auto;
  transform: scale(1);
}
/*公共，用于设置文字提示的最大宽度*/
.el-tooltip__popper {
  max-width: 500px;
}
.JxkhtjxtjllJxgl.hussar_0 {
  position: relative;
  top: 0;
  left: 0;
  display: block;
  width: calc(100% - 0px - 0px);
  height: 100%;
  background: #f7f7f7;
}
.lcdp_axe.JxkhtjxtjllJxgl .button_4 {
  position: absolute;
  top: 176px;
  left: 20px;
  display: block;
}
.lcdp_axe.JxkhtjxtjllJxgl .button_4 {
  margin-left: 0;
}
.lcdp_axe.JxkhtjxtjllJxgl .button_4 /deep/ span i {
  font-weight: normal;
}
.lcdp_axe.JxkhtjxtjllJxgl .button_9 {
  position: absolute;
  top: 20px;
  right: 0;
  display: block;
  width: 74px;
}
.lcdp_axe.JxkhtjxtjllJxgl .button_9 {
  margin-left: 0;
}
.lcdp_axe.JxkhtjxtjllJxgl .button_9 /deep/ span i {
  font-weight: normal;
}
.lcdp_axe.JxkhtjxtjllJxgl .button_11 {
  position: absolute;
  top: 20px;
  right: 174px;
  display: block;
}
.lcdp_axe.JxkhtjxtjllJxgl .button_11 {
  margin-left: 0;
}
.lcdp_axe.JxkhtjxtjllJxgl .button_11 /deep/ span i {
  font-weight: normal;
}
.lcdp_axe.JxkhtjxtjllJxgl .button_14 {
  position: absolute;
  top: 20px;
  right: 254px;
  display: block;
  width: 70px;
}
.lcdp_axe.JxkhtjxtjllJxgl .button_14 {
  margin-left: 0;
}
.lcdp_axe.JxkhtjxtjllJxgl .button_14 /deep/ span i {
  font-weight: normal;
}
.lcdp_axe.JxkhtjxtjllJxgl .button_34 {
  position: absolute;
  top: 176px;
  left: 100px;
  display: block;
  background: linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 100%);
  border-top: 1px solid;
  border-top-color: #e7e8ea;
  border-right: 1px solid;
  border-right-color: #e7e8ea;
  border-bottom: 1px solid;
  border-bottom-color: #e7e8ea;
  border-left: 1px solid;
  border-left-color: #e7e8ea;
}
.lcdp_axe.JxkhtjxtjllJxgl .button_34 {
  color: var(--c-titleColor);
  font-weight: normal;
  font-size: 14px;
  font-family: 微软雅黑;
  font-style: normal;
  letter-spacing: 0px;
  text-decoration: none;
}
.lcdp_axe.JxkhtjxtjllJxgl .button_34 {
  margin-left: 0;
}
.lcdp_axe.JxkhtjxtjllJxgl .button_34 /deep/ span i {
  font-weight: normal;
}
.lcdp_axe.JxkhtjxtjllJxgl .button_43 {
  position: absolute;
  top: 245px;
  right: 132px;
  display: block;
}
.lcdp_axe.JxkhtjxtjllJxgl .button_43 {
  margin-left: 0;
}
.lcdp_axe.JxkhtjxtjllJxgl .button_43 /deep/ span i {
  font-weight: normal;
}
.lcdp_axe.JxkhtjxtjllJxgl .container_2 {
  position: absolute;
  top: 20px;
  right: 20px;
  left: 20px;
  display: block;
  width: calc(100% - 20px - 20px);
  height: 146px;
  border-radius: 6px;
}
.lcdp_axe.JxkhtjxtjllJxgl .container_6 {
  position: absolute;
  top: 215px;
  right: 20px;
  bottom: 20px;
  left: 20px;
  display: block;
  width: calc(100% - 20px - 20px);
  height: calc(100% - 215px - 20px);
  overflow-y: auto;
  border-radius: 6px;
}
.lcdp_axe.JxkhtjxtjllJxgl .container_7 {
  position: absolute;
  top: 10px;
  right: 18px;
  left: 18px;
  display: block;
  width: calc(100% - 18px - 18px);
  height: 70px;
}
.lcdp_axe.JxkhtjxtjllJxgl .container_23 {
  position: absolute;
  top: 10px;
  left: 150px;
  display: block;
  width: 232px;
  height: 126px;
  background: transparent;
}
.lcdp_axe.JxkhtjxtjllJxgl .container_30 {
  position: absolute;
  top: 9px;
  left: 150px;
  display: block;
  width: 318px;
  height: 127px;
}
.lcdp_axe.JxkhtjxtjllJxgl .form_1 {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
}
.lcdp_axe.JxkhtjxtjllJxgl .image_3 {
  position: absolute;
  top: 10px;
  bottom: 10px;
  left: 10px;
  display: block;
  height: calc(100% - 10px - 10px);
}
.lcdp_axe.JxkhtjxtjllJxgl .label_8 {
  position: absolute;
  top: 20px;
  bottom: 20px;
  left: 12px;
  display: inline-flex;
  height: calc(100% - 20px - 20px);
  border-top: 0px solid;
  border-top-color: var(--c-borderColor);
  border-right: 0px solid;
  border-right-color: var(--c-borderColor);
  border-bottom: 2px solid;
  border-bottom-color: #409ffc;
  border-left: 0px solid;
  border-left-color: var(--c-borderColor);
}
.lcdp_axe.JxkhtjxtjllJxgl .label_8 {
  color: #409ffc;
  font-weight: normal;
  font-size: 16px;
  font-family: 微软雅黑;
  font-style: normal;
  letter-spacing: 0px;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_8 {
  text-decoration: none;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_8 {
  text-align: justify;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_8 {
  justify-content: space-between;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_8 /deep/ .required {
  color: red;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_8 /deep/ .isShear {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_24 {
  position: absolute;
  top: 10px;
  left: 10px;
  display: inline-flex;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_24 /deep/ .required {
  color: red;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_24 /deep/ .isShear {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_25 {
  position: absolute;
  top: 10px;
  left: 110px;
  display: inline-flex;
  width: 105px;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_25 {
  color: var(--c-checkBadColor);
  font-weight: bold;
  font-size: 16px;
  font-family: 微软雅黑;
  font-style: normal;
  letter-spacing: 0px;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_25 {
  text-decoration: none;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_25 {
  text-align: left;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_25 {
  justify-content: flex-start;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_25 /deep/ .required {
  color: red;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_25 /deep/ .isShear {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_26 {
  position: absolute;
  top: 50px;
  left: 10px;
  display: inline-flex;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_26 /deep/ .required {
  color: red;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_26 /deep/ .isShear {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_27 {
  position: absolute;
  top: 50px;
  left: 110px;
  display: inline-flex;
  width: 105px;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_27 {
  color: var(--c-checkBadColor);
  font-weight: bold;
  font-size: 16px;
  font-family: 微软雅黑;
  font-style: normal;
  letter-spacing: 0px;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_27 {
  text-decoration: none;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_27 {
  text-align: left;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_27 {
  justify-content: flex-start;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_27 /deep/ .required {
  color: red;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_27 /deep/ .isShear {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_28 {
  position: absolute;
  top: 90px;
  left: 10px;
  display: inline-flex;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_28 /deep/ .required {
  color: red;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_28 /deep/ .isShear {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_29 {
  position: absolute;
  top: 90px;
  left: 110px;
  display: inline-flex;
  width: 105px;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_29 {
  color: var(--c-checkBadColor);
  font-weight: bold;
  font-size: 16px;
  font-family: 微软雅黑;
  font-style: normal;
  letter-spacing: 0px;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_29 {
  text-decoration: none;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_29 {
  text-align: left;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_29 {
  justify-content: flex-start;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_29 /deep/ .required {
  color: red;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_29 /deep/ .isShear {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_31 {
  position: absolute;
  top: 49px;
  left: 0;
  display: inline-flex;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_31 /deep/ .required {
  color: red;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_31 /deep/ .isShear {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_32 {
  position: absolute;
  top: 49px;
  left: 100px;
  display: inline-flex;
  width: 204px;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_32 {
  color: var(--c-checkBadColor);
  font-weight: bold;
  font-size: 16px;
  font-family: 微软雅黑;
  font-style: normal;
  letter-spacing: 0px;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_32 {
  text-decoration: none;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_32 {
  text-align: left;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_32 {
  justify-content: flex-start;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_32 /deep/ .required {
  color: red;
}
.lcdp_axe.JxkhtjxtjllJxgl .label_32 /deep/ .isShear {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.lcdp_axe.JxkhtjxtjllJxgl .table_42 {
  position: absolute;
  top: 80px;
  right: 20px;
  left: 20px;
  display: block;
  width: calc(100% - 20px - 20px);
}
.lcdp_axe.JxkhtjxtjllJxgl .table_42 /deep/ th.gutter {
  display: none;
}
.lcdp_axe.JxkhtjxtjllJxgl .table_42 /deep/ ::-webkit-scrollbar {
  width: 16px;
  height: 16px;
}
.lcdp_axe.JxkhtjxtjllJxgl .table_42 /deep/ .page .el-pagination .el-select .el-input {
  width: auto;
}
.lcdp_axe.JxkhtjxtjllJxgl .table_42 /deep/ .page .el-pagination .el-select .el-input .el-input__inner {
  max-width: 90px;
}
.lcdp_axe.JxkhtjxtjllJxgl .table_42 /deep/ .page .el-pagination .el-pagination__jump .el-input .el-input__inner {
  vertical-align: middle;
}
.lcdp_axe.JxkhtjxtjllJxgl .table_42 /deep/ .el-table__fixed::before,
.el-table__fixed-right::before {
  content: none;
}
.lcdp_axe.JxkhtjxtjllJxgl .table_42 /deep/ .el-table__fixed-footer-wrapper {
  bottom: -1px;
}
.lcdp_axe.JxkhtjxtjllJxgl .table_42 /deep/ .el-table__body tr.current-row > td {
  border-top: 1px solid transparent;
}
.jxd_hyperlinks_span {
  color: rgb(58, 142, 230);
  cursor: pointer;
}
</style>
<style></style>
<!-- @begin style:after # 自定义 style 代码块（较高优先级） -->
<!-- @end style:after -->
